package com.info.zhiduoduo.core.service;

import com.info.zhiduoduo.repository.entity.company.CompanyProject;
import com.info.zhiduoduo.repository.entity.crowdsource.ContractorInvoice;
import com.info.zhiduoduo.repository.entity.crowdsource.CrowdsourceInvoice;
import com.info.zhiduoduo.repository.entity.entrustmentproject.EntrustmentProjectItem;
import com.info.zhiduoduo.repository.entity.invoice.Invoice;

import java.util.List;

public interface CoreInvoiceService {

	Invoice createZhiduoduoProjectInvoice(int projectid);

	Invoice createCrowdsourceProjectInvoice(int projectid);

	/**
	 * 新建委托接单- 项目发票(同一创客合并为一张发票, 创客开给发单企业)
	 */
	void createEntrustZhiduoduoProjectInvoice(List<EntrustmentProjectItem> itemList);

	/**
	 * 新建委托接单-智众包项目发票(委托主体开给发单企业),使用发单企业设置的发票类型
	 * @param itemList
	 */
	void createEntrustCrowdsourceProjectInvoice(List<EntrustmentProjectItem> itemList);

	/**
	 * 新建委托接单-智众包项目创客成本发票(同一创客合并为一张发票, 创客开给委托主体)
	 * */
	void createEntrustCrowdsourceProjectMakerInvoice(List<EntrustmentProjectItem> itemList);

	/**
	 * 新建智众包项目的创客成本发票
	 */
	CrowdsourceInvoice createCrowdsourceProjectMakerInvoice(int projectItemId);

	/**
	 * 新建智众包项目的创客成本发票
	 */
	ContractorInvoice createContractorInvoice(int projectId);
}
